package com.bit.demo;

/**
 * Created by xiebang
 * Description
 * User:小谢
 * Date:2021-09-14
 * Time:10:15
 */
/*
1.包含抽象方法的类就是抽象类。方法和类都被abstrct修饰的
2.抽象类中可以定义成员变量和成员方法。
3.抽象类不可以被实例化
4.疑问：抽象类不能被实例化，那么要他反码
5.存在的意义，就是为了被继承。
6.如果一个类继承了抽象类，那么这个类必须重写所有的抽象方法，抽象方法是不能被final的。
final和abstract是不能共存的
7.抽象方法不能被private修饰
8.一个抽象类可以被宁一个抽象类B继承，但是如果有宁外的普通类c继承了这个抽象类B，那么普通类要重写所有的抽象方法
 */
abstract class Shape{
    //可以有成员变量和成员方法
    public abstract void darw();
    public void func(){
        System.out.println("只能在子类中通过super调用");
    }
}

abstract class A extends Shape{
    public abstract void func2();
}

class B extends A{

    @Override
    public void func2() {

    }

    @Override
    public void darw() {

    }
}
class Cycle extends Shape{

    @Override
    public void darw() {
        System.out.println("画一个圆○");
    }
}

class Rect extends Shape{

    @Override
    public void darw() {
        System.out.println("画一个矩形□");
    }
}
public class TestDemo {

}
